package cn.fl.repay.service;

import cmm.mid.core.framework.dto.DataResultDTO;
import cmm.mid.core.framework.page.DataResultVO;
import cmm.mid.core.framework.page.Pager;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.repay.dto.InsCstRepaySettleDTO;
import cn.fl.repay.vo.InsCstRepaySettleVO;

public interface IInsCstRepaySettleService {

    /**
     * 分页查询所有
     * @param page
     * @return
     */
    public Pager searchListPage(Pager page) throws BaseException;

    /**
     * 提前还款（结清）试算
     * @param vo
     * @throws BaseException
     */
    public DataResultVO searchSettleInfo(InsCstRepaySettleVO vo) throws BaseException;

    /**
     * 提前还款（结清）
     * @param vo
     * @throws BaseException
     */
    public DataResultVO settle(InsCstRepaySettleVO vo) throws BaseException;

    /**
     * 欠款查询（代偿试算）
     *
     * @param vo
     * @return DataResultVO
     * @throws BaseException
     */
    public DataResultVO searchRepayInfo(InsCstRepaySettleVO vo) throws BaseException;

    /**
     * 贷款还款（代偿）
     *
     * @param vo
     * @return DataResultVO
     * @throws BaseException
     */
    public DataResultVO repay(InsCstRepaySettleVO vo) throws BaseException;

    /**
     * 查询代偿记录日志列表
     * @param page
     * @return
     * @throws BaseException
     */
    public Pager searchRepayLogListPage(Pager page) throws BaseException;

}
